package com.lapelife.backend.model.request;

import cn.hutool.log.Log;
import com.baomidou.mybatisplus.annotation.TableField;
import com.lapelife.backend.model.domain.Post;
import lombok.Data;
import org.springframework.util.StringUtils;

import java.io.Serializable;
import java.util.Date;

@Data
public class PostRequest extends PageRequest implements Serializable {
    private Integer postSize;
    private String[] keys;
    private Long[] idList;
    private String key;
    private String lookTag;
    private String collectTag;

    /**
     * 文章ID
     */
    private Long postId;

    /**
     * 文章来源，表示文章出处，即文章唯一id（url）
     */
    private String fromUrl;

    /**
     * 标题
     */
    private String title;

    /**
     * 内容
     */
    private String content;

    /**
     * 内容
     */
    private String tags;

    /**
     * 点赞量
     */
    private Integer thumbs;

    /**
     * 阅读量
     */
    private Integer looks;

    /**
     * 收藏量
     */
    private Integer collects;

    /**
     * 文章状态（0正常 1停用）
     */
    private String status;

    /**
     * 文章作者
     */
    private String author;

    /**
     * 创建者
     */
    private String createBy;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 更新者
     */
    private String updateBy;

    /**
     * 更新时间
     */
    private Date updateTime;

    /**
     * 删除标志（0代表存在 1代表删除）
     */
    private String delFlag;

    /**
     * 备注
     */
    private String remark;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;

    public void patternEmpty(){
        fromUrl = StringUtils.hasText(fromUrl) ? fromUrl : null;
        title = StringUtils.hasText(title) ? title : null;
        content = StringUtils.hasText(content) ? content : null;
        tags = StringUtils.hasText(tags) ? tags : null;
        thumbs = thumbs != null && thumbs > 0 ? thumbs : null;
        looks = looks != null && looks > 0 ? looks : null;
        collects = collects != null && collects > 0 ? collects : null;
        status = StringUtils.hasText(status) ? status : null;
        author = StringUtils.hasText(author) ? author : null;
        createBy = StringUtils.hasText(createBy) ? createBy : null;
        updateBy = StringUtils.hasText(updateBy) ? updateBy : null;
        delFlag = StringUtils.hasText(delFlag) ? delFlag : null;
        remark = StringUtils.hasText(remark) ? remark : null;
        lookTag = StringUtils.hasText(lookTag) && lookTag.equals("1") ? "1" : "0";
        collectTag = StringUtils.hasText(collectTag) && collectTag.equals("1") ? "1" : "0";
    }

}
